/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sd_proj1.monSolution;

/**
 *
 * @author Pedro Correia
 * @author Valter Vicente
 */
public class Mensagem {

    /**
     * Estados da dona da loja conforme fornecido no ficheiro de logger obrigatório
     */
    public enum eStat {

	OPTS, WFNT, CLTS, DLPM, CBOP, ATAC
    }

    /**
     * Estados dos clientes da loja conforme fornecido no logger obrigatório
     */
    public enum clientStat {

	CODC, CSDO, AOID, BYSG
    }

    /**
     *  Estados dos artesãos da oficina conforme fornecido no logger obrigatório
     */
    public enum craftStat {

	FTPM, CTTE, PANP, SIFT
    }

    /**
     * Estados da loja conforme fornecido no logger obrigatório
     *
     */
    public enum storeStat {

	SPCL, SPOP, SDCL
    }
    private eStat entrepStat;
    private clientStat statClient1;
    private int BP0 = 0;
    private clientStat statClient2;
    private int BP1 = 0;
    private clientStat statClient3;
    private int BP2 = 0;
    private craftStat statCraft1;
    private int PP0 = 0;
    private craftStat statCraft2;
    private int PP1 = 0;
    private craftStat statCraft3;
    private int PP2 = 0;
    private storeStat statShop;
    private int NCI = -1;
    private int SNPI = -1;
    private char PCR = '0';
    private char PMR = '0';
    private int APMI = -1;
    private int WNPI = -1;
    private int NSPM = -1;
    private int TAPM = -1;
    private int TNP = -1;

    public Mensagem(eStat entrepStat, clientStat statClient1, int BP0, clientStat statClient2, int BP1, clientStat statClient3, int BP2, craftStat statCraft1, int PP0, craftStat statCraft2, int PP1, craftStat statCraft3, int PP2, storeStat statShop, int NCI, int SNPI, char PCR, char PMR, int APMI, int WNPI, int NSPM, int TAPM, int TNP) {
	this.entrepStat = entrepStat;
	this.statClient1 = statClient1;
	this.BP0 = BP0;
	this.statClient2 = statClient2;
	this.BP1 = BP1;
	this.statClient3 = statClient3;
	this.BP2 = BP2;
	this.statCraft1 = statCraft1;
	this.PP0 = PP0;
	this.statCraft2 = statCraft2;
	this.PP1 = PP1;
	this.statCraft3 = statCraft3;
	this.PP2 = PP2;
	this.statShop = statShop;
	this.NCI = NCI;
	this.SNPI = SNPI;
	this.PCR = PCR;
	this.PMR = PMR;
	this.APMI = APMI;
	this.WNPI = WNPI;
	this.NSPM = NSPM;
	this.TAPM = TAPM;
	this.TNP = TNP;
    }

    public int getAPMI() {
	return APMI;
    }

    public int getBP0() {
	return BP0;
    }

    public int getBP1() {
	return BP1;
    }

    public int getBP2() {
	return BP2;
    }

    public int getNCI() {
	return NCI;
    }

    public int getNSPM() {
	return NSPM;
    }

    public char getPCR() {
	return PCR;
    }

    public char getPMR() {
	return PMR;
    }

    public int getPP0() {
	return PP0;
    }

    public int getPP1() {
	return PP1;
    }

    public int getPP2() {
	return PP2;
    }

    public int getSNPI() {
	return SNPI;
    }

    public int getTAPM() {
	return TAPM;
    }

    public int getTNP() {
	return TNP;
    }

    public int getWNPI() {
	return WNPI;
    }

    public eStat getEntrepStat() {
	return entrepStat;
    }

    public clientStat getStatClient1() {
	return statClient1;
    }

    public clientStat getStatClient2() {
	return statClient2;
    }

    public clientStat getStatClient3() {
	return statClient3;
    }

    public craftStat getStatCraft1() {
	return statCraft1;
    }

    public craftStat getStatCraft2() {
	return statCraft2;
    }

    public craftStat getStatCraft3() {
	return statCraft3;
    }

    public storeStat getStatShop() {
	return statShop;
    }

    public void setStatClient(clientStat statClient, int BP, int idCliente) {
	switch (idCliente) {
	    case 0: {
		this.statClient1 = statClient;
		this.BP0 = BP;
	    }
	    break;

	    case 1: {
		this.statClient2 = statClient;
		this.BP1 = BP;
	    }
	    break;
	    case 2: {
		this.statClient3 = statClient;
		this.BP2 = BP;
	    }
	    break;
	}
    }

    public void setStatCraft(craftStat statCraft, int PP, int idArtesao) {
	switch (idArtesao) {
	    case 0: {
		this.statCraft1 = statCraft;
		this.PP0 = PP;
	    }
	    break;

	    case 1: {
		this.statCraft2 = statCraft;
		this.PP1 = PP;
	    }
	    break;
	    case 2: {
		this.statCraft3 = statCraft;
		this.PP2 = PP;
	    }
	    break;
	}
    }

    public void setEntrepStat(eStat entrepStat) {
	this.entrepStat = entrepStat;
    }

    public void setShopStat(int NCI, int SNPI, char PCR, char PMR) {
	this.NCI = NCI;
	this.SNPI = SNPI;
	this.PCR = PCR;
	this.PMR = PMR;
    }

    public void setShopDoorStat(storeStat statShop) {
	this.statShop = statShop;
    }

    public void setWorkShopStat(int APMI, int WNPI, int NSPM, int TAPM, int TNP) {
	this.APMI = APMI;
	this.WNPI = WNPI;
	this.NSPM = NSPM;
	this.TAPM = TAPM;
	this.TNP = TNP;
    }

    public Mensagem() {
    }
}
